package com.lpssfxy.offline.model

import org.apache.spark.mllib.recommendation.{ALS, Rating}

object OfflineALSModel {

  /**
   * 训练 ALS 模型
   * @param ratingRDD 评分数据的RDD
   * @param rank 特征维度
   * @param iterations 交叉迭代次数
   * @param lambda 正则化参数
   * @return 训练好的 ALS 模型
   */
  def trainALSModel(ratingRDD: org.apache.spark.rdd.RDD[(Int, Int, Double)], rank: Int, iterations: Int, lambda: Double) = {
    val trainData = ratingRDD.map(x => Rating(x._1, x._2, x._3))
    ALS.train(trainData, rank, iterations, lambda)
  }

}
